package com.dotflat.refund.PO;

import com.dotflat.fin.PO.RefundRecordItemPO;
import com.dotflat.rest.PO.AreableObjectBasePO;
import com.dotflat.rest.utils.QueryInField;
import com.dotflat.rest.utils.RangeField;
import com.dotflat.rest.utils.ReadonlyField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

/**
 * 退费记录
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class RefundRecordPO extends AreableObjectBasePO {

    @ApiModelProperty("创建时间查询左值，大于等于这个值")
    @ReadonlyField
    @RangeField(value = "created")
    private Date createdL;

    @ApiModelProperty("创建时间查询右值，小于这个值")
    @ReadonlyField
    @RangeField(value = "created", operator = '<', eq = false)
    private Date createdR;

    @ApiModelProperty("总部审核人员姓名")
    private String auditName;

    @ApiModelProperty("总部审核单据号")
    private String auditFlowNO;

    @ApiModelProperty("宝宝名称")
    @ReadonlyField
    private String childName;

    @ApiModelProperty("班级id")
    @ReadonlyField
    private String classId;

    @ApiModelProperty("客户id")
    private String clienteleId;

    @ApiModelProperty(value = "客户id", hidden = true)
    @QueryInField("clienteleId")
    private List<String> clienteleIds;

    @ApiModelProperty("是否已经退费")
    public Boolean refunded;

    @ApiModelProperty("退款支付总金额")
    private Long refundMoney;

    @ApiModelProperty("退款支付时间")
    private Date refundTime;

    @ApiModelProperty("退款支付账号")
    private String refundAccountId;

    @ApiModelProperty("退款支付方式")
    private String refundType;

    @ApiModelProperty("退款支付账号银行流水号")
    private String serialNumber;

    @ApiModelProperty("退款备注")
    private String remark;

    @ApiModelProperty("退款项目列表")
    private List<RefundRecordItemPO> items;

}
